<?php
//1º verificacion: 13-10-2014
//Ultima verificacion: 14-10-2014 ; 04-11-2014 ; 21-11-2014 ; 20-02-2015 (Ultima verificacion)
class M_espacio_escolar extends CI_Model {
	function _construct(){
		//Call the Model constructor
		parent::_construct();
	}
	
	//Este metodo se utiliza cuando queremos obtener los espacios escolares existentes menos los borrados (-1)
	function buscar(){
		$consulta = $this->db->query("SELECT espacioescolar.*, 
											(SELECT nombre FROM tipoespacioescolar WHERE tipoespacioescolar.idTipoEspacioEscolar=espacioescolar.idTipoEspacioEscolar AND tipoespacioescolar.estado<>-1 LIMIT 1) AS tipoEspacioEscolar,
											DATE_FORMAT(espacioescolar.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(espacioescolar.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM espacioescolar
									  WHERE	espacioescolar.estado<>-1
									  ORDER BY espacioescolar.nombre ASC");
		return($consulta);
	}
			
	//Este metodo se utiliza cuando queremos obtener los espacios escolares activos
	function buscarActivos(){
		$consulta = $this->db->query("SELECT espacioescolar.*,
											(SELECT nombre FROM tipoespacioescolar WHERE tipoespacioescolar.idTipoEspacioEscolar=espacioescolar.idTipoEspacioEscolar AND tipoespacioescolar.estado<>-1 LIMIT 1) AS tipoEspacioEscolar,
											DATE_FORMAT(espacioescolar.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(espacioescolar.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM espacioescolar
									  WHERE espacioescolar.estado=1
									  ORDER BY espacioescolar.nombre ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza para eliminar un espacio escolar
	function eliminar($idEspacioEscolar=null, $idDestructor=null){
		$consulta = $this->db->query("UPDATE `espacioescolar` 
									 SET `estado` = -1,
										 `idDestructor` = ". $this->db->escape($idDestructor) ."
							         WHERE `espacioescolar`.`idEspacioEscolar` = " . $this->db->escape($idEspacioEscolar) . " LIMIT 1");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza para crear un espacio escolar
	function crear($idTipoEspacioEscolar=null, $nombre=null, $descripcion=null, $cantidadAlumnosMaxima=null, $colorDeFondo=null, $colorDeTexto=null, $compartido=null, $estado=null, $idCreador=null){
		$this->db->query("INSERT INTO `espacioescolar` (`idEspacioEscolar`,`idTipoEspacioEscolar`,`nombre`,`descripcion`,`cantidadAlumnosMaxima`,`colorDeFondo`,`colorDeTexto`,`compartido`,`fechaCreacion`,`estado`,`idCreador`) VALUES 
												       (NULL,".$this->db->escape($idTipoEspacioEscolar).",".$this->db->escape($nombre).",".$this->db->escape($descripcion).",".$this->db->escape($cantidadAlumnosMaxima).",".$this->db->escape($colorDeFondo).",".$this->db->escape($colorDeTexto).",".$this->db->escape($compartido).",now(),".$this->db->escape($estado).",".$this->db->escape($idCreador).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza cuando queremos devolver un espacio escolar en particular usado generalmente en el formulario de modificar o bien para validar
	//que un espacio escolar pasado por la url sea existente
	function get($idEspacioEscolar=null){
		$consulta = $this->db->query("SELECT espacioescolar.*, 
											(SELECT nombre FROM tipoespacioescolar WHERE tipoespacioescolar.idTipoEspacioEscolar=espacioescolar.idTipoEspacioEscolar AND tipoespacioescolar.estado<>-1 LIMIT 1) AS tipoEspacioEscolar
									  FROM espacioescolar
									  WHERE espacioescolar.estado<>-1 AND espacioescolar.idEspacioEscolar=".$this->db->escape($idEspacioEscolar)."
									  LIMIT 1");
		return($consulta);
	}
	
	//Este metodo se utiliza cuando queremos devolver el espacio escolar contiguo a uno en particular usado generalmente en el formulario de modificar
	function getContiguo($idEspacioEscolar=null, $cant=null){
		do{			
			$idEspacioEscolar+=$cant;
			$consulta = $this->db->query("SELECT *
										  FROM espacioescolar
										  WHERE idEspacioEscolar=".$this->db->escape($idEspacioEscolar)."
										  LIMIT 1");
			if($consulta->num_rows == 0)
				return(0);
			
		}while($consulta->row()->estado=='-1');
		
		return($consulta->row()->idEspacioEscolar);
	}
	
	//Este metodo se utiliza para modificar un espacio escolar
	function modificar($idEspacioEscolar=null, $idTipoEspacioEscolar=null, $nombre=null, $descripcion=null, $cantidadAlumnosMaxima=null, $colorDeFondo=null, $colorDeTexto=null, $compartido=null, $estado=null){
		$consulta = $this->db->query("UPDATE `espacioescolar`
									 SET `idTipoEspacioEscolar` = ". $this->db->escape($idTipoEspacioEscolar) .",
										 `nombre` = ". $this->db->escape($nombre) .",
									     `descripcion` = ". $this->db->escape($descripcion) .",
										 `cantidadAlumnosMaxima` = ". $this->db->escape($cantidadAlumnosMaxima) .",
										 `colorDeFondo` = ". $this->db->escape($colorDeFondo) .",
										 `colorDeTexto` = ". $this->db->escape($colorDeTexto) .",
										 `compartido` = ". $this->db->escape($compartido) .",
										 `estado` = ". $this->db->escape($estado) ."
							         WHERE `espacioescolar`.`idEspacioEscolar` = " . $this->db->escape($idEspacioEscolar) . " LIMIT 1");
		return($this->db->affected_rows());
	}
}
?>